package lsl.Git.本地仓库;

public class C03常用的基本命令 {
}
/*
        我们有个仓库之后,我们就要操作仓库,无非就是写一点代码,作为一个一个版本保存起来
            /体现出来我们的Git的功能,代码追溯,回滚等等,我们体现出来即可


        概念:
            /Git的工作目录就是,除了.get文件之外的所有文件都是工作目录
            /Git工作目录下对文件的修改(增加,删除,更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发送变化
                有那些状态:
                    1.未跟踪:
                        /你创建了一个文件,但是这个文件和Git没有任何的关系,我们要告诉Git我们这个文件创建好了
                            /你来替我管理一下,就是执行命令 git add
                            /现在这个文件就是一暂存的状态
                    2.未暂存:
                        /文件创建好之后,我们只是在暂存区
                            什么暂存区:
                                /只是在暂存区还没有进入仓库,如果你想把这个文件真的放到版本库中,作为一个版本,随时可以查看和切换
                                /我们就要使用命令,git commit
                                    /进入仓库之后就变成了一次提交记录
                                    /我们的仓库中有一个详细的记录你到底提交了几次
                                        /提交一次就是一个版本,第一次提交就是一个版本,在提交就又是一个版本
                       /我们如果是修改已有的文件
                            /这个修改的文件就是未暂存的状态
                                /你想提交修改和放到仓库中我们还是使用两个命令都是一样的
                                    git add
                                    git commit


                仓库(repository)                  暂存区(index)                  工作区(workspace)
            ------------------------------------------------------------------------------------------------
                修改进入仓库就变成了                                                未暂存<-------修改已有文件
                   一次提交记录    <---git commit   已暂存      <---git add------
                 commit_03                  (提到仓库之前的缓冲区)                 未跟踪<-------新建一个文件
                 commit_02
                 commit_01



                 本章节主要学习如歌使用命令来控制这些状态直接的切换:
                        1.git add       工作区------->暂存区
                        2.git commit    暂存区------->本地仓库


                本地仓库：是在开发人员自己电脑上的Git仓库,存放我们的代码(.git 隐藏文件夹就是我们的本地仓库)
                远程仓库：是在远程服务器上的Git仓库,存放代码(可以是github.com或者gitee.com 上的仓库,或者自己该公司的服务器)
                工作区: 我们自己写代码(文档)的地方
                暂存区: 在 本地仓库中的一个特殊的文件(index) 叫做暂存区,临时存储我们即将要提交的文件
                ------------
                Clone：克隆，就是将远程仓库复制到本地仓库
                Push：推送，就是将本地仓库代码上传到远程仓库
                Pull：拉取，就是将远程仓库代码下载到本地仓库,并将代码 克隆到本地工作区






      实战:
        /打开GitBash,创建一个文件,你直接右键创建也行,我们使用命令来看
            1.创建文件 touch file01.txt
            2.查看文件状态git status
                /Untracked files这个就是未跟踪的意思
            3.提交到暂存区
                /git add 文件名 或 git add . (直接全部添加到暂存区),可以写通配符的
                    /再次查看状态Changes to be committed:
                        /这个就是即将被提交就是暂存区的意思
            4.提交到仓库(形成版本):
                /git commit -m "add file01"
                    /(add file01)
                        /这个注释就是一个标记的作用,方便我们查看
                        /再次查看文件状态
                            /nothing to commit, working tree clean
                                /表示工作区没有内容了
            5.我们提交到哪里去了
                /git log 查看我们提交到哪里去了
                    /这个命令就是看一下仓库中有啥
                        /这里就显示
                        Author: lsl <lcb67182788@qq.com>            //提交的作者和邮箱
                        Date:   Mon Jun 3 10:56:45 2024 +0800       //提交的时间

                            add file01                              //提交的文件名字


            6.修改文件:
                /直接使用vi编辑器,或者直接修改
                    /现在文件就又进入工作区了
                        /你可以使用命令来查看状态
                        /你在一顿干

            7.再次使用git log来查看
                /现在里面就显示了你两次提交的文件
                    /现在就是两个版本了



    使用到的命令:
        1.查看文件状态(status):
            作用: 查看修改的状态(暂存区,工作区)
            命令: git status


        2.添加工作区到暂存区(add)
            作用: 添加工作区一个或多个文件的修改到暂存区
            命令: git add 单个文件名 | 通配符
                /将所有的修改放入暂存区:  git add .


        3.提交暂存区到本地仓库(commit)
            作用: 提交暂存区的数据到本地仓库的当前分支
            命令: git commit -m "注释内容"
                /分支的概念我们后面介绍
                    /也有别的方式进行提价这个方式最简单


        4.查看提交日志(log):
            作用: 查看提交记录(经历了那些版本的变化)
            命令: git log[option]
                options:
                    / --all             显示所有的分支 (分支后面我学习)
                    / --pretty-oneline  将提交信息显示为一行
                    / --abbrev-commit   使得输出的commitid更简短
                    / --graph           以图的形式显示
                        //我们的起的别名的git-log 就包含了这些参数,所以以后可以直接使用命令 git-log


        5.版本回退:
            作用: 版本切换
            命令: git reset --hard commitID
                /commitID可以使用命令git-log,或者git log指令查看,哪个黄色的就是
                    /实战:我们不想要修改文件了,我们直接回退到创建文件的哪一步,不要修改文件了
                     git-log
                        * ef38e16 (HEAD -> master) 第二次提交
                        * f9dbaea add file01

                    $ git reset --hard f9dbaea
                        HEAD is now at f9dbaea add file01

                    $ git-log
                        * f9dbaea (HEAD -> master) add file01
                    //你还可以回来



        6.如何查看已经删除的记录?
           命令: git reflog
           作用: 这个指令可以看到已经删除的提交记录(回滚之后,找不到了吗?nonono)
                /你是可以通过分析的方式得到之前的id的
                    /只要你提交了,不管你怎么回退Git中都有记录的



       7.添加文件至忽略列表
           /我们爱使用 git add .
           /但是有些文件我就不想让git管理,但是我又想使用这个git add .
           这时你就可以创建一个git的忽略列表:
                touch .gitignore
                /里面写你不想被git管理的文件,也可以写一些通配符
                    /我写的是*.a 就是a结尾的文件不要提交
                    /开发的时候,会有固定的文件不需要被管理
                        /你直接复制过来,一般这个文件不需要你手写的


       8.

 */